Use these results without warranty or express or implied fitness for any purpose. The results are not vetted for accuracy. The results are not vetted for completeness. The results are not vetted for usability. So says siri
Limited to results from IACat and RyeCat. so says siri
---
title: "geoCat"
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: scroll
social: menu
source_code: embed
---
# accuracy not vetted
Use these results without warranty or express or implied fitness for any purpose. The results are not vetted for accuracy. The results are not vetted for completeness. The results are not vetted for usability. So says siri
Limited to results from IACat and RyeCat. so says siri
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(data.table)
library(highcharter)
library(dplyr)
library(knitr)
library(maps)
data("county.fips")
data("uscountygeojson")
data("usgeojson")
#the COUNTYFP column is a character column, so we don't want to convert it to numeric
# df <- fread("../output/output_county_count.csv_combined.csv", colClasses = c("COUNTYFP" = "character"))
df <-
fread(
"../output/output_state_count.csv_combined.csv",
colClasses = c("COUNTYFP" = "character")
)
# create a vector of the names that need to be mapped
namesToMap <- c("Rye8", "RyePhone", "Rye13")
# replace the names in the Name column with "RyeCat"
df$Name[df$Name %in% namesToMap] <- "RyeCat"
# get the names that start with sofia or that contain Papa or that start with tonga
tongaNames <- df$Name[grepl("^tonga", df$Name, ignore.case = TRUE)]
papaNames <- df$Name[grepl("papa", df$Name, ignore.case = TRUE)]
sofiaNames <- df$Name[grepl("^sofia", df$Name, ignore.case = TRUE)]
IACatNames <- c(tongaNames, papaNames, sofiaNames, "iha")
# map the IACatNames to IACat
df$Name[df$Name %in% IACatNames] <- "IACat"
# subset the data frame to only include the rows where the Name column is equal to "RyeCat" or "IACat"
df <- df[Name %in% c("RyeCat", "IACat"), ]
```
Column {data-width=650}
-----------------------------------------------------------------------
```{r echo=FALSE, message=FALSE, warning=FALSE}
# function to sum the counts column by a given column name
sum_by_column <- function(in_df, column_names) {
#group by the list of column names and sum the counts column
in_df <- in_df[, .(counts = sum(counts)), by = column_names]
return(in_df)
}
```
### Count of Tracks by State
```{r}
sumByState <-
sum_by_column(in_df = df, column_names = c("STATE_NAME"))
# log10 transform the counts column
sumByState$counts <- log10(sumByState$counts)
#create a chlorealpleth map of the US
highchart() %>%
hc_add_series_map(
usgeojson,
sumByState,
value = "counts",
joinBy = c("name", "STATE_NAME"),
name = "Count",
dataLabels = list(enabled = TRUE, format = '{point.name}')
) %>%
hc_mapNavigation(enabled = TRUE) %>%
hc_colorAxis(stops = color_stops()) %>%
hc_title(text = "Count of Tracks by State") %>%
hc_add_theme(hc_theme_smpl()) %>%
hc_legend(enabled = FALSE) %>%
hc_tooltip(pointFormat = "{point.name}: {point.value}")
```
### cat counts per state
```{r}
# sum the counts column by the Name and STATE_NAME columns
sumByCatState <-
sum_by_column(in_df = df, column_names = c("Name", "STATE_NAME"))
sumByCatState <- sumByCatState[,.SD[which.max(counts)], by = STATE_NAME]
# sumByCatState$counts <- log10(sumByCatState$counts)
sumByCatState$color <- sumByCatState$Name
# create a color palette that maps RyeCat to bl
colorPalette <- c("#0000FF","#FF0000")
# create a named vector of colors
colorVector <- setNames(colorPalette, unique(sumByCatState$Name))
# replace the color column with the color vector
sumByCatState$color <- colorVector[sumByCatState$color]
# log10 transform the counts column
#create a chlorealpleth map of the US
highchart() %>%
hc_add_series_map(
usgeojson,
sumByCatState,
value = "counts",
joinBy = c("name", "STATE_NAME"),
name = "Name",
dataLabels = list(enabled = TRUE, format = '{point.name}')
) %>%
hc_mapNavigation(enabled = TRUE) %>%
hc_title(text = "Which Cat Wins Which State") %>%
hc_add_theme(hc_theme_smpl()) %>%
hc_legend(enabled = FALSE) %>%
hc_tooltip(pointFormat = "{point.name} is won by {point.Name}: {point.value} total tracks")
```
### States Won per Cat
```{r}
# count the number of states that each cat won
total = sumByCatState[, .N, by = Name]
# create a bar chart of the number of states that each cat won
# label by the cat name
highchart() %>%
hc_add_series(
total,
type = "bar",
hcaes(x = Name, y = N),
name = "States Won",
dataLabels = list(enabled = TRUE, format = '{point.Name}')
) %>%
hc_title(text = "States Won per Cat") %>%
hc_add_theme(hc_theme_smpl()) %>%
hc_legend(enabled = FALSE) %>%
hc_tooltip(pointFormat = "{point.Name} won {point.N} states")
```
### Count of Tracks by County
```{r}
# TODO where is California counties
df$COUNTY_FIP=paste0(df$STATEFP,df$COUNTYFP)
sumByCounty <-
sum_by_column(in_df = df, column_names = c("COUNTY_FIP"))
# log10 transform the counts column
sumByCounty$counts <- log10(sumByCounty$counts)
#create a chlorealpleth map of the US
highchart() %>%
hc_add_series_map(
uscountygeojson,
sumByCounty,
value = "counts",
joinBy = c("fips", "COUNTY_FIP"),
name = "Count") %>%
hc_mapNavigation(enabled = TRUE) %>%
hc_colorAxis(stops = color_stops()) %>%
hc_title(text = "Count of Tracks by County") %>%
hc_add_theme(hc_theme_smpl()) %>%
hc_legend(enabled = FALSE)
# %>%
# hc_tooltip(pointFormat = "{point.name}: {point.value}")
```